package com.star.star.service;

import com.star.common.enums.AuditStatus;
import com.star.star.dto.AuditDTO;
import com.star.star.dto.StarPhotoSaveBatchWxuserDTO;
import com.star.star.entity.StarPhoto;
import com.baomidou.mybatisplus.extension.service.IService;
import com.star.star.vo.StarPhotoListVO;

import java.util.List;

/**
 * 艺人照片 服务类
 *
 * @author yangzj
 */
public interface StarPhotoService extends IService<StarPhoto> {

    /**
     * 审核批量
     *
     * @param arts 艺术
     */
    void auditBatch(List<AuditDTO> arts);

    //-------------------- 以下微信小程序（用户端）接口 --------------------

    /**
     * 保存批量-微信小程序（用户端）
     *
     * @param dto    入参
     * @param userId 用户ID
     */
    void saveBatchWxuser(StarPhotoSaveBatchWxuserDTO dto, Long userId);

    /**
     * 更新发布
     *
     * @param id        ID
     * @param isPublish 是否发布
     * @param userId    用户ID
     */
    void updatePublishWxuser(Long id, Boolean isPublish, Long userId);

    /**
     * 设置为封面
     *
     * @param id     ID
     * @param userId 用户ID
     */
    void updateCoverWxuser(Long id, Long userId);

    /**
     * 删除通过ID-微信小程序（用户端）
     *
     * @param userId 用户ID
     * @param id     ID
     */
    void deleteByIdWxuser(Long id, Long userId);

    //-------------------- 以下通用接口 --------------------
    /**
     * 照片列表
     *
     * @param starId      艺人ID
     * @param userId      用户ID
     * @param isPublish   是否发布
     * @param auditStatus 审核状态
     * @return {@link List}<{@link StarPhotoListVO}>
     */
    List<StarPhotoListVO> listByStarId(Long starId, Boolean isPublish, Integer auditStatus, Long userId);
}
